<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>GMaps.js &mdash; Elevation Routes</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
    <script type="text/javascript" src="../gmaps.js"></script>
    <link rel="stylesheet" href="http://twitter.github.com/bootstrap/1.3.0/bootstrap.min.css"/>
    <link rel="stylesheet" type="text/css" href="examples.css"/>
    <script type="text/javascript">
        var map;
        var mousemarker = null;

        // Load the Visualization API and the piechart package.
        google.load("visualization", "1", {packages: ["columnchart"]});

        $(document).ready(function () {
            map = new GMaps({
                el: '#map',
                lat: -12.043333,
                lng: -77.028333,
                zoom: 12
            });

            //load google visualization chart
            chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

            var polygone = map.drawRoute({
                origin: [-12.044012922866312, -77.02470665341184],
                destination: [-12.090814532191756, -77.02271108990476],
                travelMode: 'walking',
                strokeColor: '#131540',
                strokeOpacity: 0.6,
                strokeWeight: 6,
                callback: function (polygones) {

                    //elevation for the path
                    map.getElevations({
                        locations: polygones.overview_path,
                        path: true,
                        callback: function (result, status) {
                            if (status == google.maps.ElevationStatus.OK) {

                                var elevations = result;

                                //set the google visualization
                                var data = new google.visualization.DataTable();
                                data.addColumn('string', 'Sample');
                                data.addColumn('number', 'Elevation');
                                for (var i = 0; i < result.length; i++) {
                                    data.addRow(['', elevations[i].elevation]);
                                }

                                //add to the dom
                                document.getElementById('chart_div').style.display = 'block';
                                chart.draw(data, {
                                    width: 340,
                                    height: 200,
                                    legend: 'none',
                                    titleY: 'Elevation (m)',
                                    focusBorderColor: '#00ff00'
                                });

                                //add mouseover
                                google.visualization.events.addListener(chart, 'onmouseover', function (e) {
                                    if (mousemarker == null) {
                                        mousemarker = map.addMarker({
                                            lat: elevations[e.row].location.lat(),
                                            lng: elevations[e.row].location.lng()
                                        });
                                    } else {
                                        mousemarker.setPosition(elevations[e.row].location);
                                    }
                                });
                            }
                        }
                    });
                }
            });
        });
    </script>
</head>
<body>
<h1>GMaps.js &mdash; Elevation Routes</h1>

<div class="row">
    <div class="span11">
        <div id="map"></div>
    </div>
    <div class="span6">
        <p>With GMaps.js you can calculate the elevation for a route like this:</p>
      <pre>map.getElevations({
  locations : [[-12.040397656836609,-77.03373871559225], [-12.040248585302038,-77.03993927003302], [-12.050047116528843,-77.02448169303511],  [-12.044804866577001,-77.02154422636042]],
  path: true, 
    callback : function (result, status){
    if (status == google.maps.ElevationStatus.OK) {
      console.log(result, status);
    }
  }
});</pre>
        <div id="chart_div"></div>
    </div>
</div>
</body>
</html>